package co.th.bjc.md.business;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;

import co.th.bjc.md.model.Brand;
import co.th.bjc.md.model.Category;
import co.th.bjc.md.model.CustomerData;
import co.th.bjc.md.model.CustomerDetails;
import co.th.bjc.md.model.Department;
import co.th.bjc.md.model.Hospital;
import co.th.bjc.md.model.Product;

public interface CustomerBusiness {

	public abstract List<CustomerData> getCustomerByCriterai(
			String hispitalType, String hospitalDepartment, 
			int bedCapacityMin, int bedCapacityMax,
			int presidentImp, int presidentRp,
			int directorImp, int directorRp,
			int limitFrom, int limitTo) throws Exception;

	public abstract List<Hospital> getHospital(BigDecimal region, String hospitalNameTH ,String hospitalNameEN)
			throws Exception;
	
	public abstract CustomerData getCustomerByCriterai(BigInteger customer_id) throws Exception;
	
	public abstract List<Department> getAllDepartment() throws Exception;
	
	public abstract List<Category> getAllCategory() throws Exception;
	
	public abstract List<Brand> getAllBrand() throws Exception;
	
	public abstract List<Product> getListModel(BigDecimal categoryCode,BigDecimal brandCode ) throws Exception;
	
	public abstract boolean insertCustormerDataDetails(CustomerDetails customerDetails) throws Exception;

	public abstract List<CustomerDetails> getCustomerDetailsAll() throws Exception;
	
	public abstract List<CustomerDetails> getCustomerDetailsByCriteria(
			String hispitalType, String hospitalDepartment, 
			int bedCapacityMin, int bedCapacityMax,
			int presidentImp, int presidentRp,
			int directorImp, int directorRp,
			int limitFrom, int limitTo) throws Exception;
	
	public abstract CustomerDetails getCustomerDetailsByCriteria(BigInteger customer_id) throws Exception;
}
